/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package estate;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 *
 * @author Wlodek
 */
public class Main {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        System.out.println("stworzOferte");
        HashMap<String, Object> hm = new HashMap<String, Object>();
        HashMap<String, Object> hm1 = new HashMap<String, Object>();
        hm.put("numer_oferty", 0);
        hm.put("typ_oferty", 2);
        hm.put("cena", 20);
        hm.put("powierzchnia", 10);
        hm.put("polozenie", 5);
        hm.put("wojewodztwo", "Dolnośląskie");
        hm.put("miejscowosc", "Wrocław");
        hm.put("opis", "Bardzo ładne mieszkanie");
        hm.put("ksiega_wieczysta", 123);

        hm.put("typ_lokalu", 0);
        hm.put("liczba_lazieniek", 2);
        hm.put("pietro", 3);
        hm.put("czy_rozkladowy", true);
        hm.put("forma_wlasnosci", "Mieszkanie własnościowe");
        hm.put("numer_lokalu", 0);


        hm.put("rok_budowy", 1900);
        hm.put("stan_prawny", "wynajęty");
        hm.put("liczba_pieter", 3);
        hm.put("liczba_pokoi", 4);
        hm.put("stan_budynu", 0);
        hm.put("typ_zabudowy", 1);
        hm.put("dzielnica", "Wiejska");
        hm.put("ulica", "Wróblewskiego");
        hm.put("kod_pocztowy", 41106);
        hm.put("numer_budynku", 3);


        hm1.put("login","login1");
        hm1.put("additionalInf","");
        hm1.put("city","city1");
        hm1.put("pesel","pesel1");
        hm1.put("houseNr","Nr1");
        hm1.put("mail","a@pwr.wroc.pl");
        hm1.put("NIP","123456789");
        hm1.put("name","name1");
        hm1.put("password","password1");
        hm1.put("phone","phone1");
        hm1.put("postCode","postCode1");
        hm1.put("regon","region1");
        hm1.put("street","street1");
        hm1.put("userType",UserTypes.normal);
        
        Fasada1 fasada1=new Fasada1();
        User user = fasada1.stworzUsera(hm1);
        System.out.println(user);
        Estate result=fasada1.Dodajoferte(hm, hm1);
        System.out.println(result);
        System.out.println(fasada1.zestawOferty(hm));

        hm.put("numer_oferty", 1);
        hm.put("typ_oferty", 2);
        hm.put("cena", 20);
        hm.put("powierzchnia", 10);
        hm.put("polozenie", 5);
        hm.put("wojewodztwo", "Dolnośląskie");
        hm.put("miejscowosc", "Wrocław");
        hm.put("opis", "Bardzo ładne mieszkanie");
        hm.put("ksiega_wieczysta", 123);

        hm.put("typ_lokalu", 0);
        hm.put("liczba_lazieniek", 4);
        hm.put("pietro", 3);
        hm.put("czy_rozkladowy", true);
        hm.put("forma_wlasnosci", "Mieszkanie własnościowe");
        hm.put("numer_lokalu", 0);


        hm.put("rok_budowy", 1960);
        hm.put("stan_prawny", "wynajęty");
        hm.put("liczba_pieter", 3);
        hm.put("liczba_pokoi", 4);
        hm.put("stan_budynu", 0);
        hm.put("typ_zabudowy", 1);
        hm.put("dzielnica", "Wiejska");
        hm.put("ulica", "Wróblewskiego");
        hm.put("kod_pocztowy", 41106);
        hm.put("numer_budynku", 3);

        hm1.put("login","login2");
        hm1.put("additionalInf","");
        hm1.put("city","city1");
        hm1.put("pesel","pesel2");
        hm1.put("houseNr","Nr1");
        hm1.put("mail","a@pwr.wroc.pl");
        hm1.put("NIP","123456789");
        hm1.put("name","name1");
        hm1.put("password","password1");
        hm1.put("phone","phone1");
        hm1.put("postCode","postCode1");
        hm1.put("regon","region1");
        hm1.put("street","street1");
        hm1.put("userType",UserTypes.normal);

        user = fasada1.stworzUsera(hm1);
        System.out.println(user);
        result=fasada1.Dodajoferte(hm, hm1);
        System.out.println(result);
        System.out.println(fasada1.zestawOferty(hm));


        Map<String,String> commHM = new HashMap<String,String>();
        commHM.put("title", "Tytul Komentarza 1");
        commHM.put("content", "Tresc komentarza 1, tresc komentarza 1");

        System.out.println("Dodawanie komentarza...");
        fasada1.addComment(commHM, user, result);
        System.out.println("Komentarze użytkownika: ");
        List<Comment> comments = user.getKomentarze();
        Long commID = 0L;
        for(Comment c : comments){
            System.out.println(c.getTitle());
            System.out.println(c.getContent());
            commID = c.getId();
        }

        System.out.println("Wyszukiwanie komentarza po ID : ");
        System.out.println(fasada1.getComment(commID).getTitle() + " content: " + fasada1.getComment(commID).getContent());

        System.out.println("Usuwanie komentarza : ");
        fasada1.deleteComment(fasada1.getComment(commID), "Rules violation");
        System.out.println("Usunięto");
        System.out.println("Wyszukiwanie usuniętego komentarza: ");
        if(fasada1.getComment(commID).isDeleted()){
            System.out.println("Usunięto, przyczyna: " + fasada1.getComment(commID).getCause());
        }else{
            System.out.println("BŁĄD! NIE USUNIĘTO KOMENTARZA!");
        }

    }

}
